﻿using Microsoft.EntityFrameworkCore; 
using System.Reflection; 
using Newtonsoft.Json;
using com.iot.core.annotation;
using System.Xml.Linq;
using System.ComponentModel.DataAnnotations;
using com.iot.core.data;

namespace com.iot.core.manager.htcls
{
    [Schema(Name = "HtClsColDto", Description = "")]
    public class HtClsColDto:BaseDto
    {




        [Comment("字段名")]
        [Schema(Name = "字段名", Description = "")]
        public string Ename { get; set; } = "";


        [Comment("字段中文名")]
        [Schema(Name = "字段中文名", Description = "")]
        public string Name { get; set; } = "";


        [Comment("字段备注")]
        [Schema(Name = "字段备注", Description = "")]
        public string Memo { get; set; } = "";


        [Comment("字段类型")]
        [Schema(Name = "字段类型", Description = "")]
        public string Lx { get; set; } = "";


        [Comment("是否List")]
        [Schema(Name = "是否List", Description = "")]
        public bool List { get; set; }


        [Comment("是否可空")]
        [Schema(Name = "是否可空", Description = "")]
        public bool Nullable { get; set; }


        [Comment("是否字符")]
        [Schema(Name = "是否字符", Description = "")]
        public bool Str { get; set; }


        [Comment("是否日期")]
        [Schema(Name = "是否日期", Description = "")]
        public bool Date { get; set; }


        [Comment("是否日期")]
        [Schema(Name = "是否日期", Description = "")]
        public bool Num { get; set; }


        [Comment("是否必须")]
        [Schema(Name = "是否必须", Description = "")]
        public bool Required { get; set; }


        [Comment("正则表达式验证")]
        [Schema(Name = "正则表达式验证", Description = "")]
        public string Regex { get; set; } = "";


        [Comment("VMin")]
        [Schema(Name = "VMin", Description = "")]
        public string Vmin { get; set; } = "";


        [Comment("VMax")]
        [Schema(Name = "VMax", Description = "")]
        public string Vmax { get; set; } = "";

        [JsonIgnore]
        [Comment("field")]
        [Schema(Name = "field", Description = "")]
        public PropertyInfo Field { get; set; }

    }
}
